iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0

簡介

Cosmos SDK 是一個區塊鏈架構,用於開發跨鏈區塊鏈網路,比如 Cosmos Hub,或權益證明(PoA)的區塊鏈。使用Cosmos SDK 開發的區塊鏈通常稱為定製應用區塊鏈。

Cosmos SDK 的目標是允許開發者從頭開始輕鬆開發原生就能同其他區塊鏈相互操作的定製區塊鏈。就如同在 Ruby-on-Rails 框架之上開發網頁應用一樣,可以很方便在 Tendermint 之上開發安全的區塊鏈應用。基於 SDK 的區塊鏈通過可組合的模組構建出來的,大部分模組都是開源的,並且可供任何開發人員使用。任何人也都可以為 Cosmos SDK 自行開發新的模組,整合現成的模組就像將它們導入到區塊鏈應用程式一樣簡單。

SDK 應用程式架構

狀態機

區塊鏈應用的核心是具有最終確定性的複制狀態機。

狀態機是計算機科學概念,一台機器可以具有多個狀態,但在任何給定時間只有一個狀態,其描述了系統的當前狀態,及觸發這些狀態轉變的事務。

給定一個狀態 S 和交易 T,狀態機會返回一個新的狀態 S'。

Tendermint

作為一個開發者,你只需要使用 Cosmos SDK 定義狀態機,Tendermint 將會為你處理網路層上的複制。

Tendermint 是一個與應用程式無關的引擎,負責處理區塊鏈的網路層和共識層。實際上,這意味著 Tendermint 負責傳播和排序交易數據。Tendermint Core 使用拜占庭容錯(BFT)算法來達成交易順序的共識。

Tendermint 共識算法協同一組稱為驗證人的特殊節點一起運作。驗證人負責向區塊鏈添加交易區塊。對於任何給定的區塊,有一組驗證人 V。通過算法選擇 V 中的驗證人 A 作為下一個區塊的提議人。如果超過三分之二的 V 簽署了 prevote 和 precommit,並且區塊包含的所有交易都是有效的,則該區塊被認為是有效的。驗證人集合可以通過狀態機中編寫的規則進行更改。

Cosmos SDK 應用程式的主要部分是一個區塊鏈服務程式,它由網路中的每個節點在其本地運行。如果驗證人集合中三分之一以下的是拜占庭(即惡意的),則每個節點在同時查詢狀態時應獲得相同的結果。

ABCI

Tendermint 通過簡稱為 ABCI 的接口將交易從網路層傳遞給應用程式,這是應用程式必須要實作的。

以下是ABCI中最重要的消息類型:

  • CheckTx:
    當 Tendermint Core 收到交易時,會將其傳遞給應用程序以檢查其有效性。一個名為“Ante Handler(預處理)”的特殊 handler 用於執行一系列驗證步驟,例如檢查手續費用是否足夠和驗證簽名是否合法。如果交易有效,則將交易添加到 mempool(交易池)中並廣播到對等節點。注意,CheckTx 不會處理交易(即不會對狀態進行修改),因為它們尚未包含在區塊中。
  • DeliverTx:
    當 Tendermint Core 接收到有效區塊時,其中的每條交易都將通過 DeliverTx 傳遞給應用程式進行處理。正是在這一階段發生了狀態轉換。“Ante Handler”將再次執行,連同對交易中每條 message 進行實際處理的 handler 一起執行。
  • BeginBlock / EndBlock:
    無論區塊是否包含交易,這兩個消息都將在每個區塊的開頭和結尾執行。觸發自動的邏輯執行是很有用的。過程中要足夠小心,因為計算成本高昂的循環運算可能會減慢區塊鏈的速度,甚至在無限循環時區塊鏈本身停滯。

接下來的三十天內,就讓我們一起跟著小明的團隊一起學習最新的兩大跨鏈技術之一:Cosmos SDK。

Cosmos SDK 開發者資源:
https://cosmos.network/developers

Cosmos 官網:
https://cosmos.network/

BDE 社群小聚錄影:
https://bitlly.co/ogvpb


想找區塊鏈人才或想學習區塊鏈知識的夥伴。歡迎參加社群小聚,一起來輕鬆交流、互相學習成長、認識新朋友、發現新機會!
 
台北區塊鏈社群
https://bitlly.co/Q4dIK

BDE 區塊鏈學院 - 讓每個企業都懂區塊鏈。
https://bitlly.co/mbDwX

藉著親自並協助他人進行軟體開發,
我們正致力於發掘更優良的軟體開發方法。
透過這樣的努力,我們已建立以下價值觀:
個人與互動 重於 流程與工具
可用的軟體 重於 詳盡的文件
與客戶合作 重於 合約協商
回應變化 重於 遵循計劃
也就是說,雖然右側項目有其價值,
但我們更重視左側項目。


上一篇
區塊鏈 3.0 - 下一代區塊鏈開發框架
下一篇
區塊鏈 3.0 - Cosmos SDK 模組化設計
系列文
新一代跨鏈技術 Cosmos SDK 區塊鏈開發框架13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言